package ClasesExtras;

import static android.provider.BaseColumns._ID;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class handlerDb extends SQLiteOpenHelper {

	static String nombreTabla1 = "lotes";
	static String nombreTabla2 = "lotes2";
	static String nombreBaseDatos = "proceso";
	static String columNombreLote = "nombre_lote";
	static String columIdEmpleado = "id_empleado";
	static String columIdProceso = "id_proceso";

	// Sentencia SQL para crear la tabla de Usuarios
	String queryreateTable1 = "CREATE TABLE " + nombreTabla1 + " (" + _ID
			+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + columNombreLote
			+ " TEXT, " + columIdEmpleado + " INTEGER, " + columIdProceso
			+ " INTEGER)";

	String queryreateTable2 = "CREATE TABLE " + nombreTabla2 + " (" + _ID
			+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + columNombreLote
			+ " TEXT, " + columIdEmpleado + " INTEGER, " + columIdProceso
			+ " INTEGER)";

	String queryDropTable1 = "DROP TABLE IF EXISTS " + nombreTabla1;
	String queryDropTable2 = "DROP TABLE IF EXISTS " + nombreTabla2;

	public handlerDb(Context context) {
		super(context, nombreBaseDatos, null, 1);

	}

	@Override
	public void onCreate(SQLiteDatabase db) {

		db.execSQL(queryreateTable1);
		db.execSQL(queryreateTable2);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

		db.execSQL(queryDropTable1);
		db.execSQL(queryDropTable2);
		this.onCreate(db);

	}

	/* metodo que ingresa los datos a la base de datos */
	public void registrar(String numeroLote, int idEmpleado, int idProceso) {

		ContentValues valores = new ContentValues();
		valores.put("nombre_lote", numeroLote);
		valores.put("id_empleado", idEmpleado);
		valores.put("id_proceso", idProceso);

		this.getWritableDatabase().insert(nombreTabla1, null, valores);
	}

	/* metodo que ingresa los datos a la base de datos */
	public void registrarTabla2(String numeroLote, int idEmpleado, int idProceso) {

		ContentValues valores = new ContentValues();
		valores.put("nombre_lote", numeroLote);
		valores.put("id_empleado", idEmpleado);
		valores.put("id_proceso", idProceso);

		this.getWritableDatabase().insert(nombreTabla2, null, valores);
	}

	/* metodo que devuelve el valor solicitado */
	public String leer(String columna) {
		String result = null;
		String columnas[] = { "_ID", columNombreLote, columIdEmpleado,
				columIdProceso };
		Cursor c = this.getReadableDatabase().query(nombreTabla1, columnas,
				null, null, null, null, null);
		int nombreLote, idEmpleado, idProceso;

		nombreLote = c.getColumnIndex(columNombreLote);
		idEmpleado = c.getColumnIndex(columIdEmpleado);
		idProceso = c.getColumnIndex(columIdProceso);

		c.moveToLast();

		if (columna.equals(columNombreLote)) {
			result = c.getString(nombreLote);
			return result;
		} else {

			if (columna.equals(columIdEmpleado)) {
				result = c.getString(idEmpleado);
				return result;
			} else {
				if (columna.equals(columIdProceso)) {
					result = c.getString(idProceso);
					return result;
				} else {
					return result;
				}

			}
		}

	}

	/* metodo que devuelve el valor solicitado */
	public String leerTabla2(String columna) {
		String result = null;
		String columnas[] = { "_ID", columNombreLote, columIdEmpleado,
				columIdProceso };
		Cursor c = this.getReadableDatabase().query(nombreTabla2, columnas,
				null, null, null, null, null);
		int nombreLote, idEmpleado, idProceso;

		nombreLote = c.getColumnIndex(columNombreLote);
		idEmpleado = c.getColumnIndex(columIdEmpleado);
		idProceso = c.getColumnIndex(columIdProceso);

		c.moveToLast();

		if (columna.equals(columNombreLote)) {
			result = c.getString(nombreLote);
			return result;
		} else {

			if (columna.equals(columIdEmpleado)) {
				result = c.getString(idEmpleado);
				return result;
			} else {
				if (columna.equals(columIdProceso)) {
					result = c.getString(idProceso);
					return result;
				} else {
					return result;
				}

			}
		}

	}

	/* elimina la fila de tabla 1 */
	public void eliminar(String deleteDate) {

		this.getWritableDatabase().delete(nombreTabla1,
				columNombreLote + "=" + deleteDate, null);
	}

	/* elimina la fila de tabla 2 */
	public void eliminarTabla2(String deleteDate) {

		this.getWritableDatabase().delete(nombreTabla2,
				columNombreLote + "=" + deleteDate, null);
	}

	public void abrir() {
		this.getWritableDatabase();
	}

	public void cerrar() {
		this.close();

	}

}
